package com.tarena.lbs.basic.web.controller;

import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.model.Result;
import com.tarena.lbs.basic.web.service.TagService;
import com.tarena.lbs.pojo.basic.param.UserTagsParam;
import com.tarena.lbs.pojo.basic.vo.TagVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
@Slf4j
public class TagController {
    @Autowired
    private TagService tagService;
    //推文创作 查询标签数据
    @GetMapping("/basic/tagLibrary/info/article/tags")
    public Result<Map<String, List<TagVO>>> getArticleTags(){
        //文章标签查询 和 用户标签查询 数据封装逻辑完全相同 查询条件tag_type不同
        Map<String,List<TagVO>> vos=tagService.tagMap(0);
        return new Result<>(vos);
    }
    @GetMapping("/basic/tagLibrary/info/userList")
    public Result<Map<String, List<TagVO>>> getUserTags(){
        //文章标签查询 和 用户标签查询 数据封装逻辑完全相同 查询条件tag_type不同
        Map<String,List<TagVO>> vos=tagService.tagMap(1);
        return new Result<>(vos);
    }
    //用户选择标签 进行绑定
    @GetMapping("/basic/user/tag")
    public Result<Void> bindUserTags(UserTagsParam param)
        throws BusinessException{
        tagService.bindUserTags(param);
        return Result.success();
    }
    //用户人群 绑定标签 查询标签数据
    @GetMapping("/basic/tagLibrary/info/user/tags")
    public Result<Map<String, List<TagVO>>> getUserGroupTags(){
        //文章标签查询 和 用户标签查询 数据封装逻辑完全相同 查询条件tag_type不同
        Map<String,List<TagVO>> vos=tagService.tagMap(1);
        return new Result<>(vos);
    }
}
